맨위로가기

Ps (유닉스)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

ps는 현재 실행 중인 프로세스에 대한 정보를 보여주는 유닉스 및 유닉스 계열 운영 체제의 명령어이다. ps 명령어를 사용하면 프로세스 ID, 사용 시간, 메모리 사용량 등과 같은 정보를 확인할 수 있으며, grep, pgrep과 같은 다른 명령어와 함께 사용하여 특정 프로세스를 찾거나, 파이프를 통해 출력을 다른 명령어로 처리할 수 있다. ps는 다양한 옵션을 제공하며, 운영 체제에 따라 표준 옵션(-ef, -l) 또는 BSD 계열 옵션(aux)을 사용할 수 있다.

더 읽어볼만한 페이지

  • 유닉스 프로세스 및 작업 관리 관련 소프트웨어 - Top (소프트웨어)
    top은 시스템의 실시간 상태를 보여주는 프로세스 모니터링 소프트웨어 유틸리티로, CPU 사용률, 메모리 사용량, 실행 중인 프로세스 목록 등 다양한 정보를 제공한다.
  • 유닉스 프로세스 및 작업 관리 관련 소프트웨어 - Kill (명령어)
    kill은 유닉스, 윈도우 등 다양한 운영 체제에서 프로세스에 신호를 보내는 데 사용되는 명령어로, 프로세스 ID 또는 프로세스 그룹 ID를 통해 프로세스 종료를 요청하거나 강제 종료를 실행한다.
  • 유닉스 SUS2008 유틸리티 - AWK
    AWK는 1977년에 개발된 텍스트 처리 및 프로그래밍 언어로, 유닉스 환경에서 텍스트 처리를 위해 설계되었으며 정규 표현식 처리 기능을 통해 텍스트 분석, 데이터 추출, 보고서 생성 등 다양한 작업을 수행한다.
  • 유닉스 SUS2008 유틸리티 - 로케일
    로케일은 소프트웨어 국제화 및 지역화에서 사용자 문화적 배경에 맞춰 사용 환경을 조정하는 설정으로, 표시 언어, 숫자/날짜 형식, 문자 분류, 통화 형식 등을 포함한다.
Ps (유닉스) - [IT 관련 정보]에 관한 문서
개요
유형유닉스, 유닉스 계열, 플랜 9, 인페르노, 콜리브리OS, IBM i 명령어
용도현재 실행 중인 프로세스 표시
최초 릴리스1973년 2월
개발자AT&T 벨 연구소 및 다양한 오픈 소스/상업 개발자
운영체제유닉스, 유닉스 계열, 플랜 9, 인페르노, 콜리브리OS, IBM i
프로그래밍 언어C
라이선스 (Plan 9)MIT 라이선스
추가 정보
플랫폼크로스 플랫폼

2. 예제

`ps` 명령어는 grep 명령어와 함께 사용하여 특정 프로세스에 대한 정보를 얻을 수 있다. 예를 들어, `firefox-bin`의 PID를 찾으려면 다음과 같이 입력한다.

```console

$ ps -A | grep firefox-bin

2701 ? 22:16:04 firefox-bin

```

pgrep을 사용하면 더 간결하게 동일한 결과를 얻을 수 있다.

```console

$ pgrep -l firefox-bin

2701 firefox-bin

```

root 권한으로 실행 중인 모든 프로세스를 사용자 형식으로 보려면 다음과 같이 입력한다.

```console

# ps -U root -u

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

root 1 0.0 0.0 9436 128 - ILs Sun00AM 0:00.12 /sbin/init --

2. 1. 기본적인 사용 예제

다음은 현재 터미널에서 실행 중인 프로세스 목록을 보여주는 예제이다.



tux:~$ ps

PID TTY TIME CMD

7431 pts/0 00:00:00 su

7434 pts/0 00:00:00 bash

18585 pts/0 00:00:00 ps



grep 명령어와 함께 사용하여, 특정 프로세스의 프로세스 ID 같은 정보를 알아볼 수 있다.



tux:~$ ps -A | grep firefox-bin

11778 ? 02:40:08 firefox-bin

11779 ? 00:00:00 firefox-bin



사용자는 파이프를 사용하여 ps를 less와 같은 다른 명령어와 함께 사용하여 프로세스 상태 출력을 한 페이지씩 볼 수 있다.



$ ps -A | less



사용자는 또한 ps 명령을 grep 명령과 함께 사용하여 단일 프로세스에 대한 정보(예: ID)를 찾을 수 있다. (pgreppkill 명령 참조)



$ # `firefox-bin`의 PID를 찾으려고 시도, 2701

$ ps -A | grep firefox-bin

2701 ? 22:16:04 firefox-bin



pgrep을 사용하면 구문이 단순해지고 잠재적인 경합 조건이 방지된다.



$ pgrep -l firefox-bin

2701 firefox-bin



사용자 형식으로 root 권한으로 실행 중인 모든 프로세스를 보는 방법은 다음과 같다.



# ps -U root -u

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

root 1 0.0 0.0 9436 128 - ILs Sun00AM 0:00.12 /sbin/init --


2. 2. grep 명령어와 함께 사용

`ps -A` 명령어는 시스템의 모든 프로세스를 표시하며, `grep firefox-bin` 명령어는 "firefox-bin"이라는 문자열을 포함하는 프로세스만 필터링한다. 이를 통해 특정 프로세스의 ID를 쉽게 찾을 수 있다.

```console

tux:~$ ps -A | grep firefox-bin

11778 ? 02:40:08 firefox-bin

11779 ? 00:00:00 firefox-bin

```

pgrep을 사용하면 구문이 단순해지고 잠재적인 경합 조건이 방지된다.

```console

$ pgrep -l firefox-bin

2701 firefox-bin

2. 3. pgrep 명령어 사용 (참고)

pgrep 명령어는 ps와 grep을 함께 사용하는 것보다 더 간결하게 특정 프로세스를 찾을 수 있게 해준다.

```console

$ pgrep -l firefox-bin

2701 firefox-bin

3. 옵션

`ps`는 다양한 옵션을 가지고 있다. 단일 유닉스 규격 표준을 지원하는 운영 체제에서는 `-ef` 옵션과 함께 사용되는데, `-e`는 모든 프로세스를, `-f`는 완전한 출력 포맷을 선택한다. `-l` 옵션은 긴 출력 포맷을 지정한다.

BSD 유래 시스템들은 역사적인 갈등 때문에 POSIX와 UNIX 표준 옵션을 사용하지 않는다. 이러한 시스템들에서는 `ps`가 비표준 옵션 `aux`로 실행된다. `a`는 다른 사용자의 프로세스를 포함한 모든 프로세스를, `x`는 제어 터미널 없는 프로세스를, `u`는 각 프로세스의 통제 사용자를 추가한다. "aux" 앞에 "-"가 없음에 유의해야 하며, `aux` 뒤에 `www`를 추가하여 모든 변수를 포함한 프로세스 정보를 볼 수 있다.

3. 1. 표준 옵션 (POSIX/SUS)

단일 유닉스 규격 표준을 지원하는 운영 체제에서 `ps` 명령어는 일반적으로 '-ef' 옵션과 함께 사용된다. '-ef'에서 '-e'는 모든(every) 프로세스를 선택하고, '-f'는 완전한(full) 출력 형식을 지정한다. 이 외에도 자주 사용되는 옵션으로 '-l'이 있는데, 이는 긴(long) 출력 형식을 나타낸다.

BSD에서 파생된 대부분의 시스템에서는 역사적인 충돌 때문에 POSIX와 UNIX 표준 옵션을 사용하지 않는다. (예를 들어, 'e'나 '-e' 옵션은 환경 변수를 표시한다.) 이러한 시스템에서 `ps` 명령어는 주로 비표준 옵션인 'aux'와 함께 실행된다. 'aux'에서 'a'는 다른 사용자의 프로세스를 포함하여 모든 프로세스를 나열하고, 'x'는 제어 터미널이 없는 모든 프로세스를, 'u'는 각 프로세스의 제어 사용자를 추가한다. 이 구문을 사용할 때는 최대 호환성을 위해 'aux' 앞에 '-'를 붙이지 않는다. 프로세스에 대한 더 자세한 정보를 보려면 (모든 매개변수를 포함) 'ps auxwww'와 같이 'aux' 뒤에 'www'를 추가할 수 있다.

3. 2. BSD 계열 옵션

BSD 계열 운영 체제에서 `ps` 명령어는 일반적으로 `aux` 옵션과 함께 사용된다. `aux`에서 `a` 옵션은 다른 사용자의 프로세스를 포함한 모든 프로세스를 표시하며, `x` 옵션은 제어 터미널이 없는 프로세스를 포함하고, `u` 옵션은 각 프로세스의 사용자 이름을 추가한다. 이러한 옵션을 사용할 때는 `aux` 앞에 `-`를 붙이지 않는다.

`auxwww`처럼 `aux` 뒤에 `www`를 추가하면, 잘리지 않은 전체 명령어와 모든 매개변수를 포함하여 프로세스에 대한 완전한 정보를 볼 수 있다.

4. 헤더 정보

열 머리글내용
%CPU프로세스가 사용하고 있는 CPU의 양
%MEM프로세스가 사용하고 있는 메모리의 양
ADDR프로세스의 메모리 주소
C 또는 CPCPU 사용량 및 스케줄링 정보
COMMAND*프로세스의 이름 (인수가 있는 경우 포함)
NInice 값
F플래그
PID프로세스 ID 번호
PPID부모 프로세스의 ID 번호
PRI프로세스의 우선순위
RSS상주 집합 크기
S 또는 STAT프로세스 상태 코드
START 또는 STIME프로세스가 시작된 시간
VSZ가상 메모리 사용량
TIME프로세스가 사용한 CPU 시간의 양
TT 또는 TTY프로세스와 연관된 터미널
UID 또는 USER프로세스 소유자의 사용자 이름
WCHAN프로세스가 대기 중인 이벤트의 메모리 주소


  • = 종종 약어로 사용됨

5. 구현

KolibriOS는 `ps` 명령어 구현을 포함한다.[1] `ps` 명령어는 IBM i 운영 체제로 이식되었다.[2] 윈도우 파워셸에서 `ps`는 `Get-Process` cmdlet에 대한 미리 정의된 명령어 별칭이며, 이는 본질적으로 동일한 목적을 수행한다.

참조

[1] 웹사이트 Shell - KolibriOS wiki http://wiki.kolibrio[...]
[2] 웹사이트 IBM System i Version 7.2 Programming Qshell https://www.ibm.com/[...] 2020-09-05



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com